博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
springMVC 上传下载文件
阅读量:5222 次
发布时间:2019-06-14

本文共 2273 字,大约阅读时间需要 7 分钟。

  后台代码

/** *  * @author */@Controller@RequestMapping("/user")public class UserController extends BaseController {    @Autowired    private UserService userService;    /**     * 跳转用户文件上传页面     *      * @return     */    @RequestMapping(value = "/uploadPage")    public String uploadPage() {        return "/admin/newFile";    }    //上传文件    @RequestMapping(value = "/upload")    public String upload(@RequestParam(value = "file") MultipartFile file, HttpServletRequest request, ModelMap model) {        System.out.println("开始");        // getRealPath("/") 得到的就是你tomcat下webapps下的项目根路径        String path = request.getSession().getServletContext().getRealPath("upload");        String fileName = file.getOriginalFilename();        // String fileName = new Date().getTime()+".jpg";        System.out.println(path);        File targetFile = new File(path, fileName);        if (!targetFile.exists()) {            targetFile.mkdirs();        }        // 保存        try {            file.transferTo(targetFile);        } catch (Exception e) {            e.printStackTrace();        }        model.addAttribute("fileUrl", fileName);        return "/admin/newFile";    }    //下载文件    @RequestMapping("/download")    public String download(String fileName, HttpServletRequest request, HttpServletResponse response) {        response.setCharacterEncoding("utf-8");        response.setContentType("multipart/form-data");        response.setHeader("Content-Disposition", "attachment;fileName=" + fileName);                try {            String path = request.getSession().getServletContext().getRealPath("upload") + File.separator;            String temp = request.getParameter("fileName");                        InputStream inputStream = new FileInputStream(new File(path + fileName));            OutputStream os = response.getOutputStream();            byte[] b = new byte[2048];            int length;            while ((length = inputStream.read(b)) > 0) {                os.write(b, 0, length);            }            // 这里主要关闭。            os.close();            inputStream.close();        } catch (Exception e) {            e.printStackTrace();        }        // 返回值要注意,要不然就出现下面这句错误!        return null;            }}

  

转载于:https://www.cnblogs.com/haorun/p/6635248.html

你可能感兴趣的文章
Apache Common-IO 使用
查看>>
再谈Vmware NAT的配置和路由流程
查看>>
javaScript数组去重方法汇总
查看>>
评价意见整合
查看>>
二、create-react-app自定义配置
查看>>
Android PullToRefreshExpandableListView的点击事件
查看>>
系统的横向结构(AOP)
查看>>
linux常用命令
查看>>
NHibernate.3.0.Cookbook第四章第6节的翻译
查看>>
例1-1
查看>>
马达调速器,直流马达调速器,直流调速器
查看>>
前端编码规范小记
查看>>
c如何弹出保存路径/保存文件对话框
查看>>
HTML标签二
查看>>
Python 3语法小记(九) 异常 Exception
查看>>
使用shared memory 计算矩阵乘法 (其实并没有加速多少)
查看>>
Django 相关
查看>>
git init
查看>>
训练记录
查看>>
IList和DataSet性能差别 转自 http://blog.csdn.net/ilovemsdn/article/details/2954335
查看>>